//
//  FHBaseTableViewController.swift
//  FHweibo
//
//  Created by 张嵩雷 on 16/4/8.
//  Copyright © 2016年 feng. All rights reserved.
//

import UIKit

///6(代理).需要实现协议里面的方法,如果不实现非optional的方法还是会报错
class FHBaseTableViewController: UITableViewController {

    //用户是否登录
    var userLogin = FHUserAccountViewModel.sharedInstance.userLogin
    
    // 是控制器加载view的时候会调用,如果直接调用super.loadView(),后续该怎么加载就会怎么加载sb/xib,在loadView里面给view设置值后,那么就不会再去sb/xib
    override func loadView() {
        userLogin ? super.loadView() : setupVisitorView()
    }
    
//    //MARK: -按钮点击事件
//    @objc private func didClickRegister() {
//        print("didClickRegister")
//    }
//    
//    @objc private func didClickLogin() {
//        print("didClickLogin")
//    }
    
   
    
    //设置访客视图
    private func setupVisitorView() {
        view = visitorView
        
        //5(代理).设置访问视图的代理,当设置代理后,没实现这个协议会报错
        visitorView.delegate = self
        
        
        // 设置访客视图内容, 4个子控制器都会走这里,self具体是什么类型看创建的子类: 多态
        
        if self is FHHomeTableViewController{
            visitorView.startRotation()
        }else if self is FHMessageTableViewController{
            visitorView.setupVisitorViewInfo("visitordiscover_image_message", message: "登录后，别人评论你的微博，发给你的消息，都会在这里收到通知")
        }else if self is  FHDiscoverTableViewController {
            visitorView.setupVisitorViewInfo("visitordiscover_image_message", message: "登录后，最新、最热微博尽在掌握，不再会与实事潮流擦肩而过")
        }else if self is FHProfileTableViewController {
            visitorView.setupVisitorViewInfo("visitordiscover_image_profile", message: "登录后，你的微博、相册、个人资料会显示在这里，展示给别人")
        }
        
        //设置导航栏按钮
        navigationItem.leftBarButtonItem = UIBarButtonItem(title: "注册", style:UIBarButtonItemStyle.Plain, target: self, action: Selector("visitorViewDidClickRegisterButton"))
        navigationItem.rightBarButtonItem = UIBarButtonItem(title: "登录", style: UIBarButtonItemStyle.Plain, target: self, action: Selector("visitorViewDidClickLoginButton"))
    }
    
    
    // MARK: - 懒加载
    ///给别人调用的时候尽量简单
    ///高内聚低耦合
    private lazy var visitorView: FHVisitorView =
        FHVisitorView() // [[HMVisitorView alloc] init]
   
}

// 扩展和OC的分类很像,只能扩展方法,可以让对象实现协议,好处方便管理代码
extension FHBaseTableViewController: FHVisitorViewDelegate {
    //MARK: -代理方法
    ///6(代理).需要实现协议里面的方法,如果不实现非optional的方法还是会报错
    func visitorViewDidClickRegisterButton() {
        print("visitorViewDidClickRegisterButton")
    }
    
    func visitorViewDidClickLoginButton() {
       
        //弹出Oauth登录界面
        let oauthVC = FHOauthViewController()
        //包装一个导航控制器
        let nav = UINavigationController(rootViewController: oauthVC)
        //modal出一个uiview
        presentViewController(nav, animated: true, completion: nil)
        
    }
}

